package com.gph.saviorframework.security.service;

import com.gph.saviorframework.common.model.Role;
import com.gph.saviorframework.base.service.BaseService;

import java.util.List;
import java.util.Map;

public interface RoleService extends BaseService<Role,String>{

    /**
     * 保存role-function之间的关系,新建用户具有index的访问权限
     * @param role
     */
    void saveWithFunction(Role role);

    /**
     * 保存角色和菜单之间的关系
     * @param roleId
     * @param menuId
     */
    void addRoleRelMenu(String roleId,String menuId);

    /**
     * 保存角色和菜单编号之间的关系
     * @param menuIds
     * @param roleId
     */
    void saveRoleMenu(String[] menuIds,String roleId);

    /**
     * 保存角色和功能之间的关系
     * @param funIds
     * @param roleId
     */
    void saveRoleFunction(String[] funIds,String roleId);

    /**
     * 添加角色和功能之间的关系
     * @param roleId
     * @param funId
     */
    void addRoleRelFunction(String roleId,String funId);

    /**
     * 保存用户和角色之间的关系
     * @param checked
     * @param unchecked
     * @param roleId
     */
    void saveRoleUser(String[] checked, String[] unchecked, String roleId);

    /**
     * 根据用户编号获取记录
     * @param user
     * @return
     */
    List<Map<String, Object>> findByUser(String user);

    /**
     * 根据岗位获取角色
     * @param positionId
     * @return
     */
    List<Map<String,Object>> findByPosition(String positionId);
}
